package cn.lili.modules.promotion.service;

import cn.lili.common.security.AuthUser;
import cn.lili.modules.promotion.entity.dos.BlindboxPrizeRecord;
import cn.lili.modules.promotion.entity.dos.BlindboxRule;
import cn.lili.modules.promotion.entity.dto.CallbackBlindboxDTO;
import cn.lili.modules.promotion.entity.vos.BlindboxPrizeRecordVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;

/**
 * 盲盒开奖记录 业务层
 *
 * @author xiangqian
 */
public interface BlindboxPrizeRecordService extends IService<BlindboxPrizeRecord> {

    /**
     * 查询最近一次公开的开奖记录
     */
    BlindboxPrizeRecord getBlindboxPrizeRecord();

    /**
     * 根据商品ID查询开奖时间
     *
     * @param goodsId 商品ID
     */
    BlindboxPrizeRecord getBlindboxPrizeRecord(String goodsId);

    /**
     * 查询我的中将记录
     *
     * @param currentUser 用户
     * @param goodsId     商品ID
     */
    BlindboxPrizeRecordVO getPrizerecordInfo(AuthUser currentUser, String goodsId);

    /**
     * 查询往期开奖记录
     */
    List<BlindboxPrizeRecordVO> getPrizerecordAll();

    /**
     * 新增开奖记录
     *
     * @param callbackBlindboxDTO 订单信息
     * @param blindboxRule      盲盒规则
     * @param code                中奖Code
     */
    void insertBlindboxPrizeRecord(CallbackBlindboxDTO callbackBlindboxDTO, BlindboxRule blindboxRule, String code);
}